Factories and other production plants are commonly used to create a variety of products. Process control systems, such as those provided by Emerson Process Management, LLP, of Austin, Tex., are widely used in such factories and/or plants in which products are manufactured or processes are controlled (e.g., chemical manufacturing, power plant control, etc.). Process control systems are also used in the harvesting of natural resources such as, for example, oil and gas drilling and handling processes, etc. Virtually any manufacturing process, resource harvesting process, etc. can be automated through the application of one or more process control systems.
Process control networks, such as those used in chemical, petroleum or other processes, generally include a centralized process controller communicatively coupled to one or more field devices which may be, for example, valve positioners, switches, sensors (such as temperature, pressure and flow rate sensors), etc. These field devices may preform physical control functions within the process (such as opening or closing a valve), may take measurements within the process for use in controlling the operation of the process or may perform any other desired function within the process. Process controllers have historically been connected to field devices via one or more analog signal lines or buses which may carry, for example, 4-20 milliampere (mA) signals to and from the field devices. More recently however, the process control industry has developed a number of standard, open, digital or combined digital and analog communication protocols such as the FOUNDATION™ FIELDBUS (hereafter “Fieldbus”), HART®, PROFIBUS®, WORLDFIP®, Device-Net® and CAN protocols which can be used to implement communications between a controller and field devices. Generally speaking, the process controller receives signals indicative of measurements made by one or more field devices and/or other information pertaining to the field devices, uses this information to implement a typically complex control routine and generates control signals which are sent via the signal lines or buses to the field devices to thereby control the operation of the process.
Another common manufacturing process controlled by process control systems is a batch process. Batch processing typically involves recipes for creating materials. For example, batch processing is commonly used in the pharmaceutical and chemical industries to manufacture drugs, chemicals and other substances. The recipe describing a batch process typically indicates how to make the desired substance. For example, a particular chemical may be created by first mixing two chemicals and then heating the mixture. The total recipe may contain hundreds of steps for creating just one substance. The recipe may indicate what materials to use and in what proportions, whether to heat or cool the materials and what equipment is needed to produce the desired substance. Preparation of polyvinyl chloride is an example practiced on an industrial scale. Polyvinyl chloride is made by polymerizing or “joining together” much smaller molecules of vinyl chloride. This is accomplished by filling a batch reactor to the appropriate level with a mixture of vinyl chloride, solvent and polymerization inducer, heating the mixture in the reactor, cooling the resulting batch, and purifying the batch by removing leftover starting materials.
Certain types of process control networks, such as those used in batch processes, typically include multiple sets of replicated equipment designed to have the same or similar equipment that performs essentially the same function within the processes. Thus, for example, a manufacturing plant for polyvinyl chloride may have multiple sets of reactor equipment (i.e., reactors), multiple sets of heating equipment (i.e., heaters), multiple sets of cooling equipment (i.e., coolers, multiple sets of purifying equipment (i.e., purifiers) and multiple sets of packaging equipment (i.e., packaging units), with some or all of the reactors being capable of operating in parallel and of being connected to operate in series with some or all of the heating, cooling, purifying and packaging units.
Typically, a batch process performs a number of different phases or steps in sequence, finishing the first stage before beginning the second stage. Thus, in the manufacturing plant described above, the batch process may run a first phase or step to control the reactor unit, may then run a second phase to run the heating unit on the product made by the reactor equipment, run a third phase that controls the cooling unit to cool the product produced by the heating unit, run a fourth phase that controls the purifying unit to purify the product and run a fifth phase that controls the packaging unit to package the purified product. Typically, each unit has an associated unit module object, which may be software adapted to represent the state of a unit (e.g., a hardware component). Unit module objects may be algorithms embodied in software instructions that are optimized to coordinate the execution of lower level modules (hereinafter the lower level modules will be referred to simply as “module objects”). Module objects, as described in further detail hereinafter, may include a variable portion and an algorithm portion. Typically, a module object is designed to carry out a single logical function such as, for example, opening a valve or filling a tank. In short module objects are used to change the state of a hardware component.
Although the foregoing exemplary hatch process for making polyvinyl chloride indicates that each phase operates on one particular unit, this is not necessarily always the case. Depending on the number of steps of each phase, multiple units of equipment may be used to carry out a particular phase. For example, if instead of a batch process being written and used for making polyvinyl chloride, making polyvinyl chloride may be a single phase of a larger batch process, such a phase could the reactors, heaters, coolers, purifiers and packaging units.
Generally, it is important to control a batch process. For example, if a reaction mixture of vinyl chloride is not reacted long enough, the yield of polyvinyl chloride from the process will be inadequate and money will be lost. Control of a batch process can become critical where production of dangerous chemicals or comparable entities is involved. One way to control a batch process is manually. That is, one or more workers are assigned the job of watching all aspects of batch process to be sure that everything is proceeding according to plan. However, this is tedious work, and errors can creep in unnoticed. For these and other reasons, automation has been developed to control batch processes by using electronic devices. Computers, programmable controllers and comparable electronic devices have been used in conjunction with intelligent field devices (i.e., intelligent sensors and controllable valves) by a number of batch control system suppliers to automate the control of batch processes. An intelligent sensor is typically placed on a piece of equipment and reports on equipment conditions to a central control room in the plant. A controllable valve typically controls the input to, or output from, a piece of equipment, and can be controlled from a central control room, often based on information received from an intelligent sensor.
Efforts to automate batch processing have led to the formation of standards committees by members of industries involved in batch processing and suppliers of batch processing equipment, among others. The general purpose of these standards committees has been to define uniform standards for automated batch processing. One such standard has been promulgated by the International Society for Measurement and Control, an international organization concerned with issues of process control. This standard is entitled Batch Control Part 1: Models and Terminology and is often referred to as the ISA S88.01-1995 standard (or “S88” for purposes of this application). The S88.01 standard defines models of equipments and procedures for use in automated batch processes, as well as terminology for use in referring to those models and their elements. The S88.01 standard references a “batch process” as a process that leads to the production of finite quantities of material by subjecting quantities of input materials to an ordered set of processing activities over a finite period of time using one or more pieces of equipment. A “batch” is the material that is being produced or has been produced by a single execution of a batch process.
The control recipes to operate the physical elements within a batch process are often referred to by the S88.01 standard as the “procedural model.” According to the S88.01 standard, the procedural model is structured as a hierarchical ranking of procedures, with the highest level encompassing each of the lower levels, the next highest level encompassing each of the levels below it, and so on. The levels of a procedural model are, in descending order, the “procedure”, the “unit procedure”, the “operation” and the “phase”, where a “procedural element” refers to any of the levels within the control recipe or procedural model. In the hierarchy, the highest-level procedural element is referred to as a procedure, which is made up of one or more unit procedures. Each unit procedure is in turn made up of one or more operations, which are each in turn made up of one or more phases.
Batch execution environments have become increasingly complex, particularly with the advent of S88.01 standard. This complexity typically manifests itself in larger and larger control recipes, each with a seemingly ever greater number of procedural elements. At the same time, batch processing plants are also growing in size and capacity. For example, the batch processing plants are capable of running multiple product “trains” simultaneously, thereby requiring the ability for the control system to manage many parallel batches at the same time. However, the increased complexity and size of the recipes combined with the improved flexibility of the actual plant equipment strains the batch processing control system. Loading and running many batches based on large and complex recipes utilizes processing, memory and other resources to their limits.
For example, a batch execution engine loads the control recipe into a process memory, and begins executing the procedural element of the control recipe in the preconfigured order. The entire procedural structure is loaded at creation time, including all levels of the control recipe, regardless of whether the various procedural elements will ever actually be executed or not. As such, it is entirely possible that depending on a choice between executing two different procedures, the unselected procedure (including some or all of the associated procedural units, operation and phases) may never actually be required. Unfortunately, the choice of which procedure to actually execute is not typically known until runtime of the control recipe, which is well past the time when all the procedural elements were loaded at creation time. As a result, even though some of the procedural elements may or may not be required during the actual execution, they are loaded regardless, and the procedural elements consume large amounts of memory, processor time, and other resources. Eventually, these strains effect a limit on the number of batches that a plant can typically load in the batch execution engines.
The complexity of batch execution environments have become increasingly complex further manifests itself in ever larger plant configurations, which have to be maintained and updated periodically. In typical systems, there are two components utilized during the execution of a batch: a lower-level controller responsible for actuating valves, pumps and other devices, and a higher-level batch execution engine, which arbitrates, monitors, and coordinates the lower-level controllers. Both of these components utilize an up-to-date model of the actual plant, such as the procedure models discussed above, and associated logic needed to control the plant equipment while running a particular batch. Plant engineers and supervisors may want to reconfigure part of the plant equipment to accommodate the manufacture of a new product, increase efficiency, etc. This reconfiguration may include changes in control recipes or equipment models such that they match the new configuration. When this occurs the controller and batch execution engine should be updated so that they know of the changes and can implement the new changes. Unfortunately, for any number of reasons, inconsistencies between these two components has typically required the entire batch to be held or aborted, thereby leading to loss production time or, even lost product. However, it is entirely possible that the inconsistency is benign or may be overcome using an older model or model parameter.